Implementation of the transport protocol "TCP" for performing reliable transport of data packets is well-known. FIG. 1 illustrates a conventional router arrangement in a TCP/IP network, e.g., Internet, whereby a local area network 20 is connected via a router 50 to a wide area network 60. Typically, the architecture of a router 50 is such that a plurality of data streams, e.g. from source data terminals connected as part of LAN 20, are received by a single buffer and are serviced by a server that sends the packets over a link 55. Once data packets arrive at their destination, e.g., a data terminal located at wide area 60, the receiver of the packet will generate an acknowledgment "ACK" packet, implicitly or explicitly, for each data packet received. Transmission of data from the source terminals is controlled by the rate of received acknowledgment packets from prior data transmissions and, as is well-known, the control of data packet transmission from a source is determined by the feedback of ACK packets from the receiver in accordance with two major variants of an adaptive sliding window scheme: TCP-Reno and TCP-Tahoe as described generally in Richard W. Stevens, "TCP/IP Illustrated" Vols. 1-3, Addison Weseley 1994, incorporated by reference as if fully set forth herein.
It has been determined that TCP exhibits inherent unfairness toward connections with long-round trip times, i.e., short round-trip time connections get more bandwidth than longer round-trip time connections because the TCP window grows faster for the short round-trip time connection than the window for the long round-trip time connection. This is because acknowledgments are received faster in the shorter round-trip time connection. An effective solution to alleviate the inherent unfairness problem has not yet been found.
Another problem inherent in TCP is the phenomenon of window synchronization. For instance, given two equal round-trip time connections at the link, the link will become saturated and the buffer will start to build up. At some point there are buffer overflows connected to the link, and those connections will experience packet loss roughly at the same time. Consequently, each connection will cut back its window virtually simultaneously, and the network throughput rate is cut down simultaneously and the network link will be underutilized.
Other problems that degrade TCP-connected network performance include phase effects, physical bandwidth asymmetry for slow reverse paths due to bottleneck link, creation of bursty traffic, lack of isolation, and lack of protection from more aggressive transport protocols or malicious users, etc.
One solution that has been implemented to improve network performance is a Random Early Detection ("RED") scheme which functions to drop packets before the buffer becomes saturated. The buffer is monitored and when the average buffer occupancy goes beyond a particular threshold, packets are randomly dropped, e.g., with a certain probability which is a function of the average buffer occupancy (moving time average), which causes the TCP connections to cut their windows randomly. This is particularly effective to de-synchronize the windows. Specifically, in a FIFO-RED scheme, those connections that use the link more are likely to have more packets dropped and consequently, its corresponding window size cut. This tends to reduce the bias for these higher rate connections.
Another scheme disclosed in co-pending U.S. patent application Ser. No. 08/858,310 entitled "System for Improving Data Throughput of a TCP/IP Network Connection with Slow Return Channel", the contents of which in incorporated by reference as if fully set forth herein, implements a drop from front strategy for ACK packets which has the benefit of increasing fairness and throughput when the reverse path is congested.
For non-TCP open-loop traffic, e.g., so-called "leaky-bucket" constrained type of streams, fair-queuing scheduling schemes have been implemented to maximize performance through a connecting link, with a scheduling scheme implemented such that the bandwidth is shared among each of the input connections in accordance with an equal or different weight. Recently much research attention has been focused on the use of fair queuing schemes as a means for guaranteeing end-to-end delay bounds and isolation. Studies in this context have primarily been for non-feedback-controlled leaky bucket policed traffic and have resulted in the development of switches and routers with weighted fair-queuing schemes. See, for example, A. K. Parekh and R. G. Gallager, "A Generalized Processor Sharing Approach to Flow Control in the Single Node Case", Proc. of INFOCOM '92, pp 915-924, May 1992. D. Stiliadis and A. Varma, "Design and Analysis of Frame-based Queuing: A New Traffic Scheduling Algorithm for Packet-Switched Networks", Proc. of ACM SIGMETRICS '96, pp. 104-115, May 1996. The focus of fair queuing in switches concentrates on the use of schedulers for servicing a variety of buffer configurations, e.g., those with physically or logically separate buffers, a shared buffer, etc.
It would be highly desirable to implement a fair queuing scheme in the context of controlling traffic in and improving performance of feedback-controlled TCP networks.
Moreover, it would be highly desirable to implement a fair queuing scheme implementing a packet dropping mechanism that enables fair throughputs for TCP connections.